package com.budweiser.user.dao;

import com.budweiser.model.user.User;
import com.budweiser.user.dto.UserDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

@Mapper
public interface UserDao {
	/***
	 * 根据params Map对象查询总条数
	 * 
	 * @param params
	 * @return
	 */
	int count(Map<String, Object> params);
	/***
	 * 根据params Map对象查询总条数
	 *
	 * @param user
	 * @return
	 */
	void add(User user);
	/***
	 * 根据params Map对象查询数据
	 * 
	 * @param params
	 * @return
	 */
	List<User> findData(Map<String, Object> params);

	/***
	 * 新增用户
	 * 
	 * @param user
	 */
	void insert(User user);

	/***
	 * 修改
	 * 
	 * @param user
	 */
	void update(User user);

	/***
	 * 批量修改数据为删除状态
	 */
	void updateDelStatus(List<Long> ids);

	/****
	 * 根据用户Id查询
	 * 
	 * @param id
	 * @return
	 */
	@Select("select * from sys_user where id =#{id}")
    User findUserId(Long id);

	/*****
	 * 根据邮箱查询
	 * 
	 * @param email
	 * @return
	 */
	@Select("select * from sys_user where email =#{email}")
    User findByEmail(String email);

	/*****
	 * 查询总条数
	 * 
	 * @param params
	 * @return
	 */
	int total(Map<String, Object> params);

	/****
	 * 分页查询
	 * 
	 * @param params
	 * @return
	 */
	List<UserDto> getUserData(Map<String, Object> params);

	/*****
	 * 根据部门名称查询用户列表
	 * 
	 * @param orgname
	 * @return
	 */
	List<UserDto> getUserByOrgName(String orgname);

}
